Читать интересную книгу Разработка Android-приложений в деталях - Тимур Машнин

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 6 7 8 9 10 11 12 13 14 15

<nine-patch> – обертывает 9PNG-изображение с изменяющимися размерами, создаваемое инструментом draw9patch SDK Tools из PNG-изображения, используя атрибуты android: src (ссылка на 9PNG-изображение), android: dither (true/false, сглаживание переходов при несовпадении конфигураций изображения и экрана).

<padding> – дочерний тэг тэга <shape>, определяет отступы для содержимого формы с помощью атрибутов android: top (верхний отступ как ресурс <dimen>), android: right (правый отступ как ресурс <dimen>), android: bottom (нижний отступ как ресурс <dimen>), android: left (левый отступ как ресурс <dimen>).

<rotate> – поворачивает Drawable-объект, основываясь на Level-значении и используя атрибуты android: visible (true/false, определяет видимость объекта), android: fromDegrees (первоначальный угол вращения), android: toDegrees (конечный угол вращения), android: pivotX (центр вращения по оси Х в процентном соотношении к ширине объекта), android: pivotY (центр вращения по оси Y в процентном соотношении к высоте объекта), android: drawable (ссылка на вращаемый объект).

<scale> – масштабирует Drawable-объект, основываясь на Level-значении и используя атрибуты android: scaleWidth (масштабирование ширины в процентах), android: scaleHeight (масштабирование высоты в процентах), android: scaleGravity (выравнивание после масштабирования), android: drawable (ссылка на первоначальный Drawable-объект), android: useIntrinsicSizeAsMinimum (true/false, определяет использование собственных размеров объекта как минимальных).

<selector> – содержит набор Drawable-объектов для различных состояний View-компонента. Набор Drawable-объектов описывается дочерними тэгами <item>, которые связываются с определенными состояниями с помощью атрибутов android: drawable (ссылка на Drawable-объект), android: state_pressed (true/false), android: state_focused (true/false), android: state_hovered (true/false), android: state_selected (true/false), android: state_checkable (true/false), android: state_checked (true/false), android: state_enabled (true/false), android: state_activated (true/false), android: state_window_focused (true/false).

<shape> – описывает геометрическую форму, используя атрибут android: shape (возможные значения rectangle, oval, line, ring) и дочерние тэги <corners>, <gradient>, <padding>, <size>, <solid>, <stroke>.

<size> – дочерний тэг тэга <shape>, определяет размеры геометрической формы, используя атрибуты android: height (высота как ресурс <dimen>), android: width (ширина как ресурс <dimen>).

<solid> – дочерний тэг тэга <shape>, определяет цвет заполнения формы с помощью атрибута android: color.

<stroke> – дочерний тэг тэга <shape>, определяет контур геометрической формы, используя атрибуты android: width (ширина контура как ресурс <dimen>), android: color (цвет контура), android: dashGap (расстояние между пунктирами как ресурс <dimen>), android: dashWidth (ширина пунктира как ресурс <dimen>).

После ввода имени нового графического ресурса, выбора его корневого элемента и нажатия кнопки Next, появляется окно Choose Configuration Folder, позволяющее выбрать спецификатор папки drawable, обеспечивающий поддержку специфической конфигурации Android-устройства, в соответствии с которой папка drawable с нужным спецификатором будет выбрана Android-системой для загрузки при выполнении кода приложения.

После создания нового графического ресурса он будет открыт в XML-редакторе кода.

Тип ресурса Menu

Android-платформа обеспечивает создание трех видов меню для Android-приложения – меню опций, которое открывается при нажатии кнопки MENU устройства или для Android-версии 3.0 и выше элементы которого могут быть помещены в ActionBar-панель, контекстное меню View-компонента и подменю элемента меню.

Все три вида меню могут быть созданы программным способом или на основе XML-описания. Создание меню на основе XML-описания является предпочтительным способом, так как позволяет разделить содержимое меню и его бизнес-логику. После создания XML-описания меню для меню опций необходимо в классе Activity-компонента переопределить метод onCreateOptionsMenu (), в котором необходимо создать программный объект из XML-описания, используя метод MenuInflater.inflate (), а также переопределить метод onOptionsItemSelected (), обрабатывающий выбор элемента меню.

Для контекстного меню необходимо в методе onCreate () Activity-компонента зарегистрировать View-компонент как имеющий контекстное меню с помощью метода registerForContextMenu (), переопределить метод onCreateContextMenu (), в котором необходимо создать программный объект из XML-описания, используя метод MenuInflater.inflate (), а также переопределить метод onContextItemSelected (), обрабатывающий выбор элемента меню. Подменю элемента меню определяется простым вложением его XML-описания в тэг элемента меню.

Для создания XML-описания меню Android-приложения в окне Project Explorer нажмем правой кнопкой мышки на узле проекта и в контекстном меню выберем команду New | Other | Android | Android XML File, нажмем кнопку Next – в результате откроется окно мастера, в списке Resource Type которого выберем тип Menu.

Поле File: мастера создания Menu-файла предлагает ввести имя нового файла XML-описания меню, который затем с расширением. xml появится в каталоге res/menu Android-проекта и будет доступен в Java-коде с помощью сгенерированного класса R.menu. [имя Menu-файла] или в XML-коде с помощью ссылки @ [package: ] menu. [имя Menu-файла].

Раздел Root Element: мастера создания Menu-файла показывает, что корневым элементом XML-файла служит тэг <menu>.

После ввода имени нового Menu-файла и нажатия кнопки Next, появляется окно Choose Configuration Folder, позволяющее выбрать спецификатор папки menu, обеспечивающий поддержку специфической конфигурации Android-устройства, в соответствии с которой папка menu с нужным спецификатором будет выбрана Android-системой для загрузки при выполнении кода приложения.

После создания нового Menu-файла он будет открыт в редакторе ADT-плагина, обеспечивающим визуальное редактирование XML-описания меню. Кнопка Add вкладки Layout редактора Menu-файла обеспечивает добавление в корневой тэг <menu> тэги <group> (элемент Group) и <item> (элемент Item).

Тэг <item> описывает элемент меню, может быть дочерним тэгом тэга <menu> и <group> и иметь в качестве дочернего тэг <menu>, представляющий подменю (элемент Sub-Menu). Тэг <item> имеет следующие атрибуты:

android: id – идентификатор элемента в виде @+id/name.

android: menuCategory – категория элемента меню, определяющая его приоритет (номер в списке) при отображении, возможные значения container, system, secondary, alternative.

android: orderInCategory – номер элемента в списке отображения в пределах категории.

android: title – текстовая метка элемента.

android: titleCondensed – укороченная текстовая метка элемента.

android: icon – ссылка на Drawable-ресурс, представляющий значок элемента, который отображается для первых 6 элементов меню опций.

android: alphabeticShortcut – символ быстрого вызова элемента.

android: numericShortcut – цифра быстрого вызова элемента.

android: checkable – если true, тогда элемент содержит флажок выбора.

android: checked – если true, тогда флажок элемента отмечен по умолчанию.

android: visible – если true, тогда элемент видим.

android: enabled – если true, тогда элемент доступен.

android: onClick – имя метода, вызываемого при нажатии элемента.

android: showAsAction – определяет как элемент отображается в ActionBar-панели, возможные значения ifRoom (отображается при наличии места в панели), never (не отображается), withText (отображается с меткой), always (всегда отображается), collapseActionView (с элементом связан разворачивающийся View-компонент).

android: actionLayout – ссылка на Layout-файл, описывающий View-компонент элемента ActionBar-панели.

android: actionViewClass – имя класса View-компонента элемента ActionBar-панели.

android: actionProviderClass – имя ActionProvider-класса, связанного с элементом ActionBar-панели.

Тэг <group> позволяет сгруппировать элементы меню так, что для них всех одновременно можно регулировать видимость, доступность и отображение флажка выбора. Тэг <group> имеет следующие атрибуты:

android: id – идентификатор группы в виде @+id/name.

android: menuCategory – категория группы элементов меню, определяющая ее приоритет (номер в списке) при отображении, возможные значения container, system, secondary, alternative.

android: orderInCategory – номер группы в списке отображения в пределах категории.

android: checkableBehavior – тип группировки элементов, возможные значения none (элементы не отображают флажок выбора), all (элементы группируются как флажки checkbox), single (элементы группируются как переключатели radio button).

android: visible – видимость элементов группы, true/false.

android: enabled – доступность элементов группы, true/false.

При выборе элементов Group и Item кнопкой Add, во вкладке Layout появляются разделы Attributes for Group и Attributes for Item c полями, позволяющими определить атрибуты тэгов <group> и <item>.

Тип ресурса Color List

Данный тип ресурса является аналогом Drawable-ресурса State List с корневым элементом <selector>. Разница состоит в том, что ресурс Drawable State List определяет набор изображений для представления различных состояний View-компонента, а ресурс Color State List определяет набор цветов для представления различных состояний View-компонента.

1 ... 6 7 8 9 10 11 12 13 14 15
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Разработка Android-приложений в деталях - Тимур Машнин.
Книги, аналогичгные Разработка Android-приложений в деталях - Тимур Машнин

Оставить комментарий